package com.tydic.springboot.model;

import com.alibaba.excel.annotation.ExcelProperty;
import com.tydic.springboot.util.easyExcel.CompanySelector;
import com.tydic.springboot.util.easyExcel.DictSelector;
import com.tydic.springboot.util.easyExcel.ExcelSelected;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @职工实体
 * @Builder 注解为类生成相对略微复杂的构建器 API
 * 它作用于类，将其变成建造者模式，可以以链的形式调用
 * @Builder 会生成一个全参构造方法，因此就没有了无参构造方法，
 * 但当我们遇到需要无参构造方法时，手写或者 @NoArgsConstructor 都会使 @Builder 生成的全参构造函数失效，这个时候就被报错，
 * 加上 @AllArgsConstructor 或者手写一个全参构造函数即可
 */
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Staff {

    @ExcelProperty(value = "职工编号", index = 0)
    private String userId;

    @ExcelProperty(value = "姓名")
    private String userName;

    @ExcelProperty(value = "性别")
    private String gender;

    @ExcelProperty(value = "工资")
    private Double salary;

    @ExcelProperty(value = "入职时间")
    private Date hireDate;

    @ExcelSelected(sourceClass = CompanySelector.class)
    @ExcelProperty(value = "公司", index = 2)
    private String warehouseName;

    @ExcelSelected(sourceClass = DictSelector.class)
    @ExcelProperty(value = "地址", index = 3)
    private String address;
}

